import { login, logout, getInfo } from "@/api/login";
import { getToken, setToken, removeToken } from "@/utils/auth";

const useUserStore = defineStore("user", {
  state: () => ({
    token: getToken(), // token
    // TODO： 这里可能会定义成一个对象userInfo，收集很多的用户资料
    name: "", // 用户名
    avatar: "", // 用户头像
    menuList: [],
    btnList: [],
  }),
  actions: {
    // 登录
    async login(userInfo) {
      // 调用API下面的登录的请求方法，发起登录请求
      let res = await login(userInfo);
      // console.log(res);
      // 获取到了token，设置给state
      this.token = res.data;
      // 存储起来到本地
      setToken(res.data);
    },
    // 获取用户信息
    async getInfo() {
      let res = await getInfo();
      // console.log(res, 'info');
      this.name = res.data.userInfo.username;
      this.avatar = res.data.userInfo.avatar;
      this.menuList = res.data.menuList;
      this.btnList = res.data.btnList;
      return res.data;
    },
    // 退出系统
    logOut() {
      this.token = "";
      removeToken();
      // return new Promise((resolve, reject) => {
      // logout(this.token).then(() => {
      //   this.token = ''
      //   removeToken()
      //   resolve()
      // }).catch(error => {
      //   reject(error)
      // })
      // })
    },
  },
});

export default useUserStore;
